home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)td.d64 / stripped bonds.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  2KB  |  70 lines

  1. 1 REM    A PROGRAM TO CALCULATE PRESENT AND FUTURE VALUES FOR STRIPPED BONDS
  2. 2 REM    SEMI ANNUAL INTEREST IS ASSUMED
  3. 3 REM    WRITTEN BY
  4. 4 REM      JOHN MICHELL
  5. 5 REM      105 SCARBORO AVENUE S. W.
  6. 6 REM      CALGARY, ALBERTA
  7. 7 REM      T3C 2H2
  8. 10 PRINT"[147] [211]TRIPPED [195]OUPON [195]ALCULATIONS"
  9. 20 PRINT"[207]UTPUT TO SCREEN OR PRINTER -"
  10. 25 INPUT"  ENTER S OR P";O$
  11. 30 F=4:IF O$<>"P"THEN F=3
  12. 32 OPENF,F,7
  13. 34 PRINT"[197]NTER [212] FOR A TABLE, [195] FOR SPECIFIC CALCULATIONS, OR [211] TO STOP"
  14. 35 INPUT T$
  15. 36 IF T$="T" THEN 40
  16. 37 IF T$="C" THEN 500
  17. 38 IF T$="S" THEN END
  18. 39 GOTO 35
  19. 40 PRINT"[197]NTER 5 NOMINAL ANNUAL INTEREST RATES"
  20. 50 INPUT IP(1),IP(2),IP(3),IP(4),IP(5)
  21. 100 IF F=3 THEN PRINT#F,"[147]"
  22. 105 PRINT#F,"":PRINT#F,"         [211]TRIPPED [195]OUPON [195]ALCULATIONS":PRINT#F,""
  23. 110 PRINT#F,"            [198]UTURE [214]ALUE OF $1000"
  24. 120 PRINT#F,"          AT [214]ARYING [201]NTEREST [210]ATES":PRINT#F," "
  25. 140 PRINT#F,"                    [201]NTEREST [210]ATES"
  26. 150 PRINT#F,"   [217]R";
  27. 160 FOR I=1TO5
  28. 170 C$="      "+STR$(IP(I)):PRINT#F,RIGHT$(C$,4+F);:NEXT I
  29. 180 PRINT#F,""
  30. 210 FOR I = 1 TO 5
  31. 220 P(I)=1000:NEXT
  32. 300 FOR I = 1 TO 5
  33. 310 IN(I)=(IP(I)/200+1)
  34. 320 NEXT
  35. 400 REM CALCULATION LOOP
  36. 410 FOR Y=0TO 30
  37. 420 IF (5*INT(Y/5))=Y THEN GOSUB 4000
  38. 425 FOR H=1TO 2
  39. 430 FOR  I = 1 TO 5
  40. 440 P(I)=P(I)*IN(I): NEXTI
  41. 450 NEXT H:NEXT Y
  42. 460 GOTO34
  43. 500 INPUT "[201]NTEREST RATE";IN
  44. 510 INPUT "[206]UMBER OF YEARS";N
  45. 530 PRINT "[196]O YOU WANT TO INPUT [208]RESENT OR [198]UTURE VALUE ([208]/[198])"
  46. 540 INPUT V$
  47. 550 IF V$="P" THEN 600
  48. 560 IF V$="F" THEN 700
  49. 570 GOTO 540
  50. 600 INPUT "[208]RESENT VALUE";P
  51. 610 FF=INT((1+(IN/200))^(2*N)*P)
  52. 620 (null) TO 800
  53. 700 INPUT "[198]UTURE VALUE";FF
  54. 710 EX=-(2*N)
  55. 720 IX=1+IN/200
  56. 730 P=INT(FF*IX^EX)
  57. 800 PRINT#F," ":PRINT#F," "
  58. 810 PRINT#F,"[193]T";IN;"% INTEREST $";P;"GROWS TO $";FF;"IN";N;"YEARS"
  59. 820 INPUT "[193]NOTHER";A$
  60. 840 IF A$="Y" THEN GOTO 500
  61. 850 GOTO 34
  62. 999 END
  63. 4000 REM PRINT ROUTINE
  64. 4020 C$="      "+STR$(Y)
  65. 4030 PRINT#F,RIGHT$(C$,5);
  66. 4035 FOR I=1TO5
  67. 4040 C$="      "+STR$(INT(P(I))):PRINT#F,RIGHT$(C$,4+F);:NEXT I
  68. 4050 PRINT#F,""
  69. 4060 RETURN
  70.